/* Fenil Chandarana Fab Academy 2022 Webpage link: https://fabacademy.org/2022/labs/vigyanashram/students/fenil-chandarana/ */ // include the library code: #include int ldr = 3; int val = 0; int led1 = 6; int rst1 =8; int led2 = 9; int rst2 = 10; int water = 7; int x = 0; int check = 0; int m = 0; int y = 0; int flag1 = 0; int flag2 = 0; int rstcheck1 = 0; int rstcheck2 = 0; int plug1 = 1; int plug2 = 1; const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd( rs, en, d4, d5, d6, d7); void setup() { pinMode(ldr,INPUT); pinMode(water, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(rst1, INPUT); pinMode(rst2, INPUT); // set up the LCD's number of columns and rows: lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("masala dosa"); delay(1000); lcd.clear(); Serial.begin(9600); } void loop() { int i =0; for (i=0; i<90; i++){ //after which cycle resets check = digitalRead(water); rstcheck1 = digitalRead(rst1); rstcheck2 = digitalRead(rst2); val = analogRead(ldr); lcd.setCursor(0,0); lcd.print("Stream : "); lcd.print(x); lcd.setCursor(0,1); lcd.print("Drops : "); lcd.print(y); Serial.print("m = "); Serial.print(m); Serial.print(" "); if (check == HIGH && val > 10) // value of photoresistor { if (i < 80) { // stream , constant power m=m+1; delay(80); if (m > 150) // drop , fluctuating power { y=y+1; m = 0;} } else { m = 0;} } if (check == HIGH && i == 80) // suppose the value of i is 60 in "if (check == HIGH && i == 60)". Let say the stream breaks at 20 and resumed at 21 then +1 vill be incremented in stream when the number reaches at m=81. 21+60=81. { if(val >10){ // photoresistor x = x+1; lcd.setCursor(0,0); lcd.print("Stream : "); lcd.print(x); lcd.setCursor(0,1); lcd.print("Drops :"); lcd.print(y); delay (100); } } if (check == LOW && i>2) { i = 0; delay(100); } Serial.print(i); Serial.print(" "); Serial.print(check); Serial.print(" "); Serial.print(val); Serial.print(" "); Serial.print(x); if (y == 1) // led for drop , fluctuating power { flag1 = 1; } if (flag1 == HIGH && plug1 == 1){ digitalWrite (led1, HIGH); flag1 = 0; } if (x == 1) // led for stream , constant power { flag2 = 1; } if (flag2 == HIGH && plug2 == 1) { digitalWrite (led2, HIGH); flag2 = 0; } if (rstcheck1 == 1){ digitalWrite (led1, LOW); flag1 = 0; plug1 = 0;} if (rstcheck2 == 1){ digitalWrite (led2, LOW); flag2 = 0; plug2 = 0; } Serial.print(flag1); Serial.print(" "); Serial.print(flag2); Serial.print(" "); Serial.print(rstcheck1); Serial.print(" "); Serial.println(rstcheck2); } }